﻿using System;
using System.Data;
using System.Data.SqlClient;
using consultasSql;
using consultasSql.consultasVarias;
using ot;
using validarDatos;


public partial class Stdby_OrdenTrabajo_ordenTrabajo : System.Web.UI.Page
{
    private void mostrarMensaje(string mensaje)
    {
        System.Text.StringBuilder sbMensaje = new System.Text.StringBuilder();

        sbMensaje.Append("<script type='text/javascript'>");
        sbMensaje.AppendFormat("alert('{0}');", mensaje);
        sbMensaje.Append("</script>");
        ClientScript.RegisterClientScriptBlock(this.GetType(), "Mensaje", sbMensaje.ToString());
    }

    /*---------------------------------------------------------*/
    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("../tabOrdenTrabajo/ordenTrabajo.aspx", false);
    }

    /*---------------------------------------------------------*/

    protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
        {
            if (Session["idOt"] != null)
            {


                /*--------------*/
                //realizo esto para poder mostrar el mensaje de que la operación fue exitosa y se creo un nuevo registro.
                //recargo la pagina para poder mostrar los botones que se activaron luego de guardar los datos, de acuerdo a los permisos
                string exito = Request.QueryString["exito"];

                if (!String.IsNullOrEmpty(exito))
                {
                    if (exito.Equals("0"))
                    {
                        mostrarMensaje(CMensajes.mensajeOperacionExitosa());
                    }
                }
                /*--------------*/




                if (!String.IsNullOrEmpty(Session["idOt"].ToString().Trim()))
                {
                    cargarCampos(Convert.ToInt32(Session["idOt"].ToString().Trim()));
                }
                else
                {
                    Response.Redirect("~/Stdby/OrdenTrabajo/tabOrdenTrabajo/ingresoOrdenTrabajo.aspx", false);
                }
            }
            else
            {
                Response.Redirect("../ingresoOrdenTrabajo/ingresoOrdenTrabajo.aspx");
            }
        }


        if (Request.Params["__EVENTTARGET"] == "grillaOrigen")
        {
            cargarGrillaOrigen();
        }

        if (Request.Params["__EVENTTARGET"] == "destino")
        {
            //recupero los argumentos pasados por javascript
            string[] argumentos = Request.Params["__EVENTARGUMENT"].Split(';');

            if (argumentos != null)
            {
                if (argumentos.Length > 0)
                {
                    //selecciono la provincia
                    ddlProvincia.SelectedIndex = ddlProvincia.Items.IndexOf(ddlProvincia.Items.FindByText(argumentos[0]));

                    //cargo las localidades para la provincia
                    cargarComboLocalidad();

                    //selecciono la localidad
                    ddlLocalidad.SelectedIndex = ddlLocalidad.Items.IndexOf(ddlLocalidad.Items.FindByText(argumentos[1]));
                }
            }
        }


    }


    private void cargarCampos(int idOt)
    {
        cargarComboTipoMovimiento();

        if (ddlTipoMovimiento.SelectedIndex != 0)
        {
            cargarCbImputaEnarsa();
        }

        cargarComboProvincia();
        cargarComboLocalidad();
        elementoSeleccionado();

        cargarCamposAModificar(idOt);

        cargarGrillaOrigen();

    }

    private void cargarComboTipoMovimiento()
    {
        try
        {
            string consulta = "SELECT '' AS 'Id', '' AS 'TipoMov' UNION SELECT Id AS 'Id', TipoMov AS 'TipoMov' FROM Movimiento ORDER BY 2";

            SqlDataAdapter daElemento = new SqlDataAdapter(consulta, CCadenaConexionSql.cadConexion());

            DataSet dsElemento = new DataSet();

            daElemento.Fill(dsElemento);

            ddlTipoMovimiento.DataSource = dsElemento.Tables[0].DefaultView;
            ddlTipoMovimiento.DataTextField = "TipoMov";
            ddlTipoMovimiento.DataValueField = "Id";
            ddlTipoMovimiento.DataBind();
        }
        catch { }
    }

    protected void ddlTipoMovimiento_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (ddlTipoMovimiento.SelectedIndex != 0)
        {
            cargarCbImputaEnarsa();
            seleccionTipoMovimiento();
        }
        else
        {
            cbxImputaEnarsa.Checked = false;
        }

        imputaEnarsa();
    }


    private void seleccionTipoMovimiento()
    {
        bool bandera = true;

        switch (ddlTipoMovimiento.SelectedItem.Text)
        {
            case "De Flota":
                bandera = true;
                break;
        }

        txtSemi.Text = "";

        if (bandera)
        {
            btnSemi.Enabled = true;
            btnSemi.Visible = true;
        }
        else
        {
            btnSemi.Enabled = false;
            btnSemi.Visible = false;
        }
    }


    private void cargarCbImputaEnarsa()
    {

        SqlCommand command = new SqlCommand();

        command.CommandType = CommandType.Text;
        command.CommandText = "SELECT TOP 1 imputaEnarsa FROM Movimiento WHERE Id = @Id";

        command.Parameters.Clear();

        command.Parameters.Add(new SqlParameter("@Id", SqlDbType.Int));
        command.Parameters["@Id"].Value = ddlTipoMovimiento.SelectedValue;

        cbxImputaEnarsa.Checked = Convert.ToBoolean(new CDarDataSet().darDataTable(command).Rows[0][0]);

    }


    private void cargarComboProvincia()
    {
        try
        {
            string consulta = "SELECT Id, Nombre FROM Provincia ORDER BY 2";

            SqlDataAdapter daElemento = new SqlDataAdapter(consulta, CCadenaConexionSql.cadConexion());

            DataSet dsElemento = new DataSet();

            daElemento.Fill(dsElemento);

            ddlProvincia.DataSource = dsElemento.Tables[0].DefaultView;
            ddlProvincia.DataTextField = "Nombre";
            ddlProvincia.DataValueField = "Id";
            ddlProvincia.DataBind();

        }
        catch { }
    }


    protected void ddlProvincia_SelectedIndexChanged(object sender, EventArgs e)
    {
        cargarComboLocalidad();
    }

    private void cargarComboLocalidad()
    {
        try
        {
            string consulta = "SELECT Id, Nombre FROM Localidad WHERE IdProvincia = " + ddlProvincia.SelectedValue + " ORDER BY 2";

            SqlDataAdapter daElemento = new SqlDataAdapter(consulta, CCadenaConexionSql.cadConexion());

            DataSet dsElemento = new DataSet();

            daElemento.Fill(dsElemento);

            ddlLocalidad.DataSource = dsElemento.Tables[0].DefaultView;
            ddlLocalidad.DataTextField = "Nombre";
            ddlLocalidad.DataValueField = "Id";
            ddlLocalidad.DataBind();
        }
        catch { }
    }


    //si el campo esta chequeado solo se puede seleccionar un generador
    protected void cbxImputaEnarsa_CheckedChanged(object sender, EventArgs e)
    {
        imputaEnarsa();
    }

    protected void ddlElemento_SelectedIndexChanged(object sender, EventArgs e)
    {
        imputaEnarsa();
        cargarGrillaOrigen();
    }

    //si el campo esta chequeado solo se puede seleccionar un generador
    private void imputaEnarsa()
    {
        if (cbxImputaEnarsa.Checked)
        {
            ddlElemento.SelectedIndex = 1;
            ddlElemento.Enabled = false;          
        }
        else
        {
            ddlElemento.Enabled = true;
        }

        elementoSeleccionado();

    }


    //cambio el elemento seleccionado entre cisterna o generador
    private void elementoSeleccionado()
    {
        switch (ddlElemento.SelectedIndex)
        {
            case 0:
                lblSeleccionElemento.Text = "Elemento:";
                txtElemento.Text = "";
                txtElemento.Enabled = false;

                btnGenerador.Enabled = false;
                btnGenerador.Visible = false;

                btnCisterna.Enabled = false;
                btnCisterna.Visible = false;

                btnSemi.Enabled = true;
                btnSemi.Visible = true;

                btnTanque.Enabled = true;
                btnTanque.Visible = true;

                btnRingMaster.Enabled = true;
                btnRingMaster.Visible = true;

                btnTablero.Enabled = true;
                btnTablero.Visible = true;

                break;
            case 1:
                lblSeleccionElemento.Text = "Generador:";
                txtElemento.Text = "";
                txtElemento.Enabled = true;

                txtSemi.Text = "";
                txtTanque.Text = "";
                txtRingMaster.Text = "";
                txtTablero.Text = "";

                btnGenerador.Enabled = true;
                btnGenerador.Visible = true;

                btnCisterna.Enabled = false;
                btnCisterna.Visible = false;

                btnSemi.Enabled = false;
                btnSemi.Visible = false;

                btnTanque.Enabled = false;
                btnTanque.Visible = false;

                btnRingMaster.Enabled = false;
                btnRingMaster.Visible = false;

                btnTablero.Enabled = false;
                btnTablero.Visible = false;

                break;
            case 2:
                lblSeleccionElemento.Text = "Cisterna:";
                txtElemento.Text = "";
                txtElemento.Enabled = true;

                txtSemi.Text = "";

                btnCisterna.Enabled = true;
                btnCisterna.Visible = true;

                btnGenerador.Enabled = false;
                btnGenerador.Visible = false;

                btnSemi.Enabled = false;
                btnSemi.Visible = false;

                btnTanque.Enabled = true;
                btnTanque.Visible = true;

                btnRingMaster.Enabled = true;
                btnRingMaster.Visible = true;

                btnTablero.Enabled = true;
                btnTablero.Visible = true;
                
                break;
            default:
                lblSeleccionElemento.Text = "Elemento:";
                txtElemento.Text = "";
                txtElemento.Enabled = false;

                btnGenerador.Enabled = false;
                btnGenerador.Visible = false;

                btnCisterna.Enabled = false;
                btnCisterna.Visible = false;

                btnSemi.Enabled = true;
                btnSemi.Visible = true;

                btnTanque.Enabled = true;
                btnTanque.Visible = true;

                btnRingMaster.Enabled = true;
                btnRingMaster.Visible = true;

                btnTablero.Enabled = true;
                btnTablero.Visible = true;
                
                break;
        }
  
    
    }

    /*cargar grilla de origen*/
    private void cargarGrillaOrigen()
    {
        //limpio los campos
        lblElemento.Visible = false;
        lblTanque.Visible = false;
        lblTransfKVA.Visible = false;
        lblTransfMVA.Visible = false;

        txtElemento.ToolTip = null;
        txtTanque.ToolTip = null;
        txtTransfKVA.ToolTip = null;
        txtTransfMVA.ToolTip = null;


        //limpio la grilla
        Grilla.DataSource = null;
        Grilla.DataBind();


        //creo un datatable
        DataTable dt = new DataTable();

        //le indico las columnas
        dt.Columns.Add("Elemento");
        dt.Columns.Add("Movex");
        dt.Columns.Add("Origen");


        if (!String.IsNullOrEmpty(txtElemento.Text.Trim()) && ddlElemento.SelectedIndex != 0)
        {
            if (existeRegistro(lblSeleccionElemento.Text.Replace(":",""), "Movex", txtElemento.Text.Trim()))
            {
                dt.Rows.Add(cargarGrillaOrigen(dt, lblSeleccionElemento.Text.Replace(":", ""), txtElemento.Text.Trim(), obtenerOrigen("Id" + lblSeleccionElemento.Text.Replace(":", ""), Convert.ToInt32(new CObtenerId().obtenerId(lblSeleccionElemento.Text.Replace(":", ""), "Movex", txtElemento.Text.Trim())))));
            }
            else
            {
                //txtElemento.ToolTip = CMensajes.mensajeValidaMovex();
                lblElemento.Visible = true;
            }
        }

        if (!String.IsNullOrEmpty(txtTanque.Text.Trim()))
        {
            if (existeRegistro("Tanque", "Movex", txtTanque.Text.Trim()))
            {
                dt.Rows.Add(cargarGrillaOrigen(dt, "Tanque", txtTanque.Text.Trim(), obtenerOrigen("IdTanque", Convert.ToInt32(new CObtenerId().obtenerId("Tanque", "Movex",txtTanque.Text.Trim())))));
            }
            else
            {
                txtTanque.ToolTip = CMensajes.mensajeValidaMovex();
                lblTanque.Visible = true;
            }
        }

        if (!String.IsNullOrEmpty(txtTransfKVA.Text.Trim()))
        {
            if (existeRegistro("TransfKVA", "Movex", txtTransfKVA.Text.Trim()))
            {
                dt.Rows.Add(cargarGrillaOrigen(dt, "Transformador KVA", txtTransfKVA.Text.Trim(), obtenerOrigen("IdTransfKVA", Convert.ToInt32(new CObtenerId().obtenerId("TransfKVA", "Movex",txtTransfKVA.Text.Trim())))));
            }
            else
            {
                txtTransfKVA.ToolTip = CMensajes.mensajeValidaMovex();
                lblTransfKVA.Visible = true;
            }
        }

        if (!String.IsNullOrEmpty(txtTransfMVA.Text.Trim()))
        {
            if (existeRegistro("TransfMVA", "Movex", txtTransfMVA.Text.Trim()))
            {
                dt.Rows.Add(cargarGrillaOrigen(dt, "Transformador MVA", txtTransfMVA.Text.Trim(), obtenerOrigen("IdTransfMVA", Convert.ToInt32(new CObtenerId().obtenerId("TransfMVA", "Movex", txtTransfMVA.Text.Trim())))));
            }
            else
            {
                txtTransfMVA.ToolTip = CMensajes.mensajeValidaMovex();
                lblTransfMVA.Visible = true;
            }
        }


        //paso a el griedview el datatable
        Grilla.DataSource = dt;
        Grilla.DataBind();


    }


    private DataRow cargarGrillaOrigen(DataTable dt,string elemento, string movex, string origen)
    {
        //creo un datarow
        DataRow dr = dt.NewRow();

        try
        {
             //le asigno un valor a cada columna 
            dr["Elemento"] = elemento;
            dr["Movex"] = movex;
            dr["Origen"] = origen;

        }
        catch { }

        return dr;
    }



    /*El origen es la provincia, localidad, calle y altura*/
    private string obtenerOrigen(string campo, int id)
    {
        SqlCommand command = new SqlCommand();

        command.CommandType = CommandType.Text;
        command.CommandText = "DECLARE @origen	VARCHAR(MAX)      SET @origen = (SELECT TOP 1 Calle + ' ' + Altura + ', ' + Localidad.Nombre + ', ' + Provincia.Nombre FROM OtCab INNER JOIN Provincia ON OtCab.IdProvincia = Provincia.Id INNER JOIN Localidad ON OtCab.IdLocalidad = Localidad.Id WHERE Localidad.IdProvincia = Provincia.Id AND " + campo + " = @id)      IF @origen IS NOT NULL OR @origen <> '' SELECT @origen AS 'Origen' ELSE SELECT 'En Empresa.' AS 'Origen'";

        command.Parameters.Clear();

        command.Parameters.AddWithValue("@id", id);

        try
        {
            return new CDarDataSet().darDataTable(command).Rows[0][0].ToString();
        }
        catch{}

        return null;
    }





    protected void btnGuardar_Click(object sender, EventArgs e)
    {
        if (comprobarCampos())
        {
            updateInsert();
        }
    }

  
    //comprobar campos
    private bool comprobarCampos()
    {
        lblProyecto.Visible = false;
        lblDistribuidora.Visible = false;
        lblElemento.Visible = false;
        lblSemi.Visible = false;
        lblTanque.Visible = false;
        lblRingMaster.Visible = false;
        lblTransfKVA.Visible = false;
        lblTransfMVA.Visible = false;
        lblTablero.Visible = false;
        lblCalle.Visible = false;
        lblAltura.Visible = false;
        lblLongitud.Visible = false;
        lblLatitud.Visible = false;
        lblObservaciones.Visible = false;



        txtProyecto.ToolTip = null;
        txtDistribuidora.ToolTip = null;
        txtElemento.ToolTip = null;
        txtSemi.ToolTip = null;
        txtTanque.ToolTip = null;
        txtRingMaster.ToolTip = null;
        txtTransfKVA.ToolTip = null;
        txtTransfMVA.ToolTip = null;
        txtTablero.ToolTip = null;
        txtCalle.ToolTip = null;
        txtAltura.ToolTip = null;
        txtLongitud.ToolTip = null;
        txtLatitud.ToolTip = null;
        txtObservaciones.ToolTip = null;



        bool bandera = true;

        try
        {
            if (ddlTipoMovimiento.SelectedIndex == 0)
            {
                ddlTipoMovimiento.ToolTip = "Seleccione un movimiento.";
                lblTipoMovimiento.Visible = true;
                bandera = false;
            }

            if (!existeRegistro("Proyecto", "NombProy", txtProyecto.Text.Trim()))
            {
                txtProyecto.ToolTip = "Ingrese un Nombre de Proyecto válido.";
                lblProyecto.Visible = true;
                bandera = false;
            }

            if (cbxImputaEnarsa.Checked)
            {
                if (!CValidaDatos.validaPalabras(txtDistribuidora.Text.Trim()) || String.IsNullOrEmpty(txtDistribuidora.Text.Trim()))
                {
                    txtDistribuidora.ToolTip = CMensajes.mensajeValidaPalabra();
                    lblDistribuidora.Visible = true;
                    bandera = false;
                }
            }
            else
            {
                if (!CValidaDatos.validaPalabras(txtDistribuidora.Text.Trim()))
                {
                    txtDistribuidora.ToolTip = CMensajes.mensajeValidaPalabra();
                    lblDistribuidora.Visible = true;
                    bandera = false;
                }
            }



            int cont = 0;

            switch (ddlElemento.SelectedIndex)
            {
                case 1:
                    if (!String.IsNullOrEmpty(txtElemento.Text.Trim()))
                    {
                        if (CValidaDatos.validaPalabras(txtElemento.Text.Trim()))
                        {
                            if (!existeRegistro("Generador", "Movex", txtElemento.Text.Trim()))
                            {
                                txtElemento.ToolTip = CMensajes.mensajeValidaMovex();
                                lblElemento.Visible = true;
                                bandera = false;
                            }
                            else
                            {
                                cont = cont + 1;
                            }
                        }
                        else
                        {
                            txtElemento.ToolTip = CMensajes.mensajeValidaPalabra();
                            lblElemento.Visible = true;
                            bandera = false;
                        }
                    }
                    else
                    {
                        txtElemento.ToolTip = CMensajes.mensajeValidaMovex();
                        lblElemento.Visible = true;
                        bandera = false;
                    }
                    break;
                case 2:
                    if (!String.IsNullOrEmpty(txtElemento.Text.Trim()))
                    {
                        if (CValidaDatos.validaPalabras(txtElemento.Text.Trim()))
                        {
                            if (!existeRegistro("Cisterna", "Movex", txtElemento.Text.Trim()))
                            {
                                txtElemento.ToolTip = CMensajes.mensajeValidaMovex();
                                lblElemento.Visible = true;
                                bandera = false;
                            }
                            else
                            {
                                cont = cont + 1;
                            }
                        }
                        else
                        {
                            txtElemento.ToolTip = CMensajes.mensajeValidaPalabra();
                            lblElemento.Visible = true;
                            bandera = false;
                        }
                    }
                    else
                    {
                        txtElemento.ToolTip = CMensajes.mensajeValidaMovex();
                        lblElemento.Visible = true;
                        bandera = false;
                    }
                    break;
            }


            if (!String.IsNullOrEmpty(txtSemi.Text.Trim()))
            {

                if (CValidaDatos.validaPalabras(txtSemi.Text.Trim()))
                {
                    if (!existeRegistro("Semis", "Movex", txtSemi.Text.Trim()))
                    {
                        txtSemi.ToolTip = CMensajes.mensajeValidaMovex();
                        lblSemi.Visible = true;
                        bandera = false;
                    }
                    else
                    {
                        cont = cont + 1;
                    }
                }
                else
                {
                    txtSemi.ToolTip = CMensajes.mensajeValidaPalabra();
                    lblSemi.Visible = true;
                    bandera = false;
                }
            }

            if (!String.IsNullOrEmpty(txtTanque.Text.Trim()))
            {
                if (CValidaDatos.validaPalabras(txtTanque.Text.Trim()))
                {
                    if (!existeRegistro("Tanque", "Movex", txtTanque.Text.Trim()))
                    {
                        txtTanque.ToolTip = CMensajes.mensajeValidaMovex();
                        lblTanque.Visible = true;
                        bandera = false;
                    }
                    else
                    {
                        cont = cont + 1;
                    }
                }
                else
                {
                    txtTanque.ToolTip = CMensajes.mensajeValidaPalabra();
                    lblTanque.Visible = true;
                    bandera = false;
                }
            }


            if (!String.IsNullOrEmpty(txtRingMaster.Text.Trim()))
            {
                if (CValidaDatos.validaPalabras(txtRingMaster.Text.Trim()))
                {
                    if (!existeRegistro("RingMaster", "Movex", txtRingMaster.Text.Trim()))
                    {
                        txtRingMaster.ToolTip = CMensajes.mensajeValidaMovex();
                        lblRingMaster.Visible = true;
                        bandera = false;
                    }
                    else
                    {
                        cont = cont + 1;
                    }
                }
                else
                {
                    txtRingMaster.ToolTip = CMensajes.mensajeValidaPalabra();
                    lblRingMaster.Visible = true;
                    bandera = false;
                }
            }


            if (!String.IsNullOrEmpty(txtTransfKVA.Text.Trim()))
            {
                if (CValidaDatos.validaPalabras(txtTransfKVA.Text.Trim()))
                {
                    if (!existeRegistro("TransfKVA", "Movex", txtTransfKVA.Text.Trim()))
                    {
                        txtTransfKVA.ToolTip = CMensajes.mensajeValidaMovex();
                        lblTransfKVA.Visible = true;
                        bandera = false;
                    }
                    else
                    {
                        cont = cont + 1;
                    }
                }
                else
                {
                    txtTransfKVA.ToolTip = CMensajes.mensajeValidaPalabra();
                    lblTransfKVA.Visible = true;
                    bandera = false;
                }
            }


            if (!String.IsNullOrEmpty(txtTransfMVA.Text.Trim()))
            {
                if (CValidaDatos.validaPalabras(txtTransfMVA.Text.Trim()))
                {
                    if (!existeRegistro("TransfMVA", "Movex", txtTransfMVA.Text.Trim()))
                    {
                        txtTransfMVA.ToolTip = CMensajes.mensajeValidaMovex();
                        lblTransfMVA.Visible = true;
                        bandera = false;
                    }
                    else
                    {
                        cont = cont + 1;
                    }
                }
                else
                {
                    txtTransfMVA.ToolTip = CMensajes.mensajeValidaPalabra();
                    lblTransfMVA.Visible = true;
                    bandera = false;
                }
            }


            if (!String.IsNullOrEmpty(txtTablero.Text.Trim()))
            {
                if (CValidaDatos.validaPalabras(txtTablero.Text.Trim()))
                {
                    if (!existeRegistro("Tablero", "Movex", txtTablero.Text.Trim()))
                    {
                        txtTablero.ToolTip = CMensajes.mensajeValidaMovex();
                        lblTablero.Visible = true;
                        bandera = false;
                    }
                    else
                    {
                        cont = cont + 1;
                    }
                }
                else
                {
                    txtTablero.ToolTip = CMensajes.mensajeValidaPalabra();
                    lblTablero.Visible = true;
                    bandera = false;
                }
            }



            //un elemento debe ser ingresado como minimo
            if (cont <= 0)
            {
                mostrarMensaje("Debe ingresar mínimo un elemento.");
                bandera = false;
            }



            if (!CValidaDatos.validaPalabras(txtCalle.Text.Trim()) || String.IsNullOrEmpty(txtCalle.Text.Trim()))
            {
                txtCalle.ToolTip = CMensajes.mensajeValidaPalabra();
                lblCalle.Visible = true;
                bandera = false;
            }

            if (!String.IsNullOrEmpty(txtAltura.Text.Trim()))
            {
                if (!CValidaDatos.validaEntero(txtAltura.Text.Trim()))
                {
                    txtAltura.ToolTip = CMensajes.mensajeValidaNumero();
                    lblAltura.Visible = true;
                    bandera = false;
                }
            }

            if (!String.IsNullOrEmpty(txtObservaciones.Text.Trim()))
            {
                if (!CValidaDatos.validaPalabras(txtObservaciones.Text.Trim()))
                {
                    txtObservaciones.ToolTip = CMensajes.mensajeValidaPalabra();
                    lblObservaciones.Visible = true;
                    bandera = false;
                }
            }

            if (!String.IsNullOrEmpty(txtLongitud.Text.Trim()))
            {
                if (!CValidaDatos.validaDecimal(txtLongitud.Text.Trim()))
                {
                    txtLongitud.ToolTip = CMensajes.mensajeValidaNumero();
                    lblLongitud.Visible = true;
                    bandera = false;
                }
            }

            if (!String.IsNullOrEmpty(txtLatitud.Text.Trim()))
            {
                if (!CValidaDatos.validaDecimal(txtLatitud.Text.Trim()))
                {
                    txtLatitud.ToolTip = CMensajes.mensajeValidaNumero();
                    lblLatitud.Visible = true;
                    bandera = false;
                }
            }

        }
        catch
        {
            bandera = false;
        }

        return bandera;
    }


    //compruebo si existe el registro

    private bool existeRegistro(string tabla, string campo, string valor)
    {
        bool bandera = true;

        valor = valor.Trim();

        if (!String.IsNullOrEmpty(valor))
        {
            if (!CValidaDatos.validaPalabras(valor))
            {
                bandera = false;
            }
            else
            {
                if (!new CExisteRegistro().existeRegistro(tabla, campo, valor))
                {
                    bandera = false;
                }
            }
        }
        else
        {
            bandera = false;
        }

        return bandera;
    }


    //update o insertObjeto_Accesorios
    private void updateInsert()
    {
        try
        {

            if (Session["idOt"] == null || Session["idOt"].ToString().Equals("0"))
            {
                string nuevaOt = new CConsultaCrearOrdenTrabajo().crearOrdenTrabajo();

                Session["idOt"] = nuevaOt;
            }


            if (Session["idOt"] != null)
            {

                COrdenTrabajo objeto = new COrdenTrabajo{

                    idMov = ddlTipoMovimiento.SelectedValue,

                    ImputaEnarsa = cbxImputaEnarsa.Checked,

                    Distribuidora = txtDistribuidora.Text.Trim(),

                    nombreProy = txtProyecto.Text.Trim(),

                    movexSemi = txtSemi.Text.Trim(),
                    movexTanque = txtTanque.Text.Trim(),
                    movexRingMaster = txtRingMaster.Text.Trim(),
                    movexTransfKVA = txtTransfKVA.Text.Trim(),
                    movexTransfMVA = txtTransfMVA.Text.Trim(),
                    movexTablero = txtTablero.Text.Trim(),

                    llevaCable = cbxLlevaCable.Checked,

                    IdProvincia = Convert.ToInt32(ddlProvincia.SelectedValue),
                    IdLocalidad = Convert.ToInt32(ddlLocalidad.SelectedValue),

                    Calle = txtCalle.Text.Trim(),
                    Altura = txtAltura.Text.Trim(),
                    CoordLong = txtLongitud.Text.Trim(),
                    CoordLat = txtLatitud.Text.Trim(),

                    ObsOT = txtObservaciones.Text.Trim(),


                };

                switch (ddlElemento.SelectedIndex)
                {
                    case 0:
                        objeto.movexCisterna = null;
                        objeto.movexGenerador = null;
                        break;
                    case 1:
                        objeto.movexCisterna = null;
                        objeto.movexGenerador = txtElemento.Text.Trim();
                        break;
                    case 2:
                        objeto.movexGenerador = null;
                        objeto.movexCisterna = txtElemento.Text.Trim();
                        break;
                    default:
                        objeto.movexCisterna = null;
                        objeto.movexGenerador = null;
                        break;
                }


                CConsultaOrdenTrabajo consulta = new CConsultaOrdenTrabajo();
            
                if (!String.IsNullOrEmpty(Session["idOt"].ToString().Trim()))
                {
                    objeto.Id = Convert.ToInt32(Session["idOt"].ToString().Trim());

                    if (consulta.update(objeto))
                    {
                        //si fue exitosa envio 0, para luego mostrar el mensaje
                        Response.Redirect("../tabOrdenTrabajo/ordenTrabajo.aspx?exito=0", false);
                    }
                    else
                    {
                        mostrarMensaje(CMensajes.mensajeOperacionFallida());
                    }
                }
                else //si es null, redirigimos, debido a que algo sucedio
                {
                    Response.Redirect("../ingresoOrdenTrabajo/ingresoOrdenTrabajo.aspx");
                }



            }
            else //si es null, redirigimos, debido a que algo sucedio
            {
                Response.Redirect("../ingresoOrdenTrabajo/ingresoOrdenTrabajo.aspx");
            }

        }
        catch
        {
            mostrarMensaje(CMensajes.mensajeOperacionFallida());
        }
    }

    private void cargarCamposAModificar(int Id)
    {
        try
        {
            string consulta = "SELECT OtCab.Id ,OtCab.IdMov, OtCab.ImputaEnarsa, Proyecto.NombProy, OtCab.Distribuidora, Generador.Movex, Cisterna.Movex, Semis.Movex, Tanque.Movex, RingMaster.Movex, TransfKVA.Movex, TransfMVA.Movex, Tablero.Movex, OtCab.LlevaCable, OtCab.IdProvincia, OtCab.IdLocalidad, OtCab.Calle, OtCab.Altura, OtCab.CoordLong, OtCab.CoordLat, OtCab.ObsOT FROM OtCab LEFT JOIN Generador ON OtCab.IdGenerador = Generador.Id LEFT JOIN Cisterna ON OtCab.IdCisterna = Cisterna.Id LEFT JOIN Semis ON OtCab.IdSemi = Semis.Id LEFT JOIN Tanque ON OtCab.IdTanque = Tanque.Id LEFT JOIN RingMaster ON OtCab.IdRingMaster = RingMaster.Id LEFT JOIN TransfKVA ON OtCab.IdTransfKVA = TransfKVA.Id LEFT JOIN TransfMVA ON OtCab.IdTransfMVA = TransfMVA.Id LEFT JOIN Tablero ON OtCab.IdTablero = Tablero.Id LEFT JOIN Proyecto ON OtCab.IdProy = Proyecto.Id WHERE OtCab.Id = @Id";

            SqlCommand command = new SqlCommand();


            command.CommandType = CommandType.Text;
            command.CommandText = consulta;

            command.Parameters.Clear();

            command.Parameters.AddWithValue("@Id", Id);


            DataTable tabla = new CDarDataSet().darDataTable(command);



            //cargo los campos

            ddlTipoMovimiento.SelectedValue = tabla.Rows[0][1].ToString();


            cbxImputaEnarsa.Checked = Convert.ToBoolean(tabla.Rows[0]["ImputaEnarsa"]);


            txtProyecto.Text = tabla.Rows[0][3].ToString();

            txtDistribuidora.Text = tabla.Rows[0][4].ToString();



            if (!String.IsNullOrEmpty(tabla.Rows[0][5].ToString()))
            {
                ddlElemento.SelectedIndex = 1;
                lblSeleccionElemento.Text = "Generador:";
                txtElemento.Enabled = true;
                txtElemento.Text = tabla.Rows[0][5].ToString();//generador
                btnGenerador.Enabled = true;
                btnGenerador.Visible = true;

                btnCisterna.Enabled = false;
                btnCisterna.Visible = false; 
            }
            else if (!String.IsNullOrEmpty(tabla.Rows[0][6].ToString()))
            {
                ddlElemento.SelectedIndex = 2;
                lblSeleccionElemento.Text = "Cisterna:";
                txtElemento.Enabled = true;
                txtElemento.Text = tabla.Rows[0][6].ToString();//cisterna

                btnCisterna.Enabled = true;
                btnCisterna.Visible = true; 

                btnGenerador.Enabled = false;
                btnGenerador.Visible = false;
            }
            else
            {
                ddlElemento.SelectedIndex = 0; //ninguno
                lblSeleccionElemento.Text = "Elemento:";
                txtElemento.Enabled = false;
                txtElemento.Text = "";

                btnGenerador.Enabled = false;
                btnGenerador.Visible = false;

                btnCisterna.Enabled = false;
                btnCisterna.Visible = false; 
            }




            txtSemi.Text = tabla.Rows[0][7].ToString();
            txtTanque.Text = tabla.Rows[0][8].ToString();
            txtRingMaster.Text = tabla.Rows[0][9].ToString();
            txtTransfKVA.Text = tabla.Rows[0][10].ToString();
            txtTransfMVA.Text = tabla.Rows[0][11].ToString();
            txtTablero.Text = tabla.Rows[0][12].ToString();

            cbxLlevaCable.Checked = Convert.ToBoolean(tabla.Rows[0]["LlevaCable"]);

            ddlProvincia.SelectedValue = tabla.Rows[0][14].ToString();

            cargarComboLocalidad();

            ddlLocalidad.SelectedValue = tabla.Rows[0][15].ToString();

            txtCalle.Text = tabla.Rows[0][16].ToString();
            txtAltura.Text = tabla.Rows[0][17].ToString();
            txtLongitud.Text = tabla.Rows[0][18].ToString();
            txtLatitud.Text = tabla.Rows[0][19].ToString();

            txtObservaciones.Text = tabla.Rows[0][20].ToString();
        }
        catch { }

    }




    
}

    

    
